WARNING:
JavaScript is turned OFF. None of the links on this concept map will
work until it is reactivated.
If you need help turning JavaScript On, click here.
此概念图以 IHMC CmapTools 创建, 内含信息有关于: 第4章 物件導向分析與設計簡介, 4-2-1 物件導向分析- 建立類別 是 從候選類別的清單中,我們可以選出系統 真正需要的類別,刪除哪些不屬於系統的 類別(可能只是屬性)。例如:從學生選 課問題可以找出學生(Student)、課程( Course)、選課(Class)和註冊 (Registration)4個類別來建立領域模型的 類別圖。, 4-3-2 UML塑模過程的範例-問題說明 是 電子鬧鐘擁有LCD螢幕顯示時間,提供鬧鈴 功能和貪睡裝置,可以調整時間和設定鬧鈴 時間。 電子鬧鐘擁有5個操作按鈕,【設定】鈕可 以設定時間,按【設定鬧鈴】鈕2秒鐘調整 鬧鈴時間,按一下切換是否啟用鬧鈴,加減 號鈕調整時間。當鬧鈴響時,按上方【貪睡 】鈕,可以貪睡5分鐘。, 4-2-3 物件導向程式設計-範例1 是 class Registration { private Courses[] courses; private Student student; public boolean checkId() { return false; } public Courses selectCourse() { return null; } } class Student { private int stdId; private Class class; public int getId() { return 0; } public Class getClass() { return null; } }, 4-1 物件導向軟體系統開發 包括 4-1-3 為什麼使用物件導向軟體系統開發- 原因, 4-3-2 UML塑模過程的範例-問題 是 在這一節筆者準備使用一個簡單實例來說明 UML塑模過程。因為物件導向技術的精神是 模擬真實世界的東西,所以,筆者準備建立 一個模擬電子鬧鐘的軟體程式,如下圖所示 :, 4-2 物件導向分析與設計 包括 4-2-1 物件導向分析- 指定責任(CRC卡), 4-3-1 UML與物件導向分析與設計- UML塑模過程說明1 是 需求擷取:我們需要找出使用者的真正需求 ,也就是系統提供的功能與服務。 建立使用案例模型:以UML使用案例圖來描 述從問題領域擷取的系統需求,然後寫出使 用案例圖主要使用案例的描述和情節 (Scenarios),也就是使用案例的詳細故事 。我們可以使用UML活動圖描述流程來完成 使用案例模型的建立。 定義概念模型:在此步驟定義概念模型的類 別圖,這是一種簡化的類別圖。 建立互動圖:使用UML互動圖描述物件之間 的訊息傳遞,以便分析類別的屬性與行為和 找出關係。我們可以針對重要類別建立UML 狀態機圖來顯示狀態的轉換,一般來說,類 別擁有3個以上狀態變更才需要建立狀態機 圖。 定義設計模型:在此步驟是建立設計模型的 類別圖,我們可以從循序圖和通訊圖找出類 別關係、屬性和行為,然後更新概念模型建 立設計模型的類別圖。, 4-2 物件導向分析與設計-說明 是 請注意!物件導向分析與設計的分野並不 十分清楚,因為使用的方法論不同,系統 開發者可以自行依需要或實際情況來決定 其範圍,在這一節筆者區分物件導向分析 和設計的目的只是為了教學上的考量。, 第4章 物件導向分析與設計簡介 包括 4-1 物件導向軟體系統開發, 4-3 UML的物件導向分析與設計 包括 4-3-2 UML塑模過程的範例-定義概念模型, 4-1-3 為什麼使用物件導向軟體系統開發- 原因 是 對應真實世界的物件:物件導向軟體系統 是模擬真實世界的物件,而不是內部的資 料結構,開發者可以很容易了解和維護別 人建立的軟體系統。 資訊隱藏(Information Hiding):物件導向 軟體系統是一個物件集合,每一個物件包 含資料和處理資料的函數,將實際處理的 資料隱藏起來,稱為封裝(Encapsulation) 。當我們升級或維護軟體系統時,更改的 物件是獨立單位,並不會影響到軟體系統 的其他部分。 軟體元件的模組(Modularity):每一個物 件都是可重複使用的軟體元件,如同電腦 硬體的隨插即用(Plug and Play),將物件 一一插入,就可以組合成軟體系統。不只 如此,我們還可以擴充軟體元件的物件, 輕鬆使用在其他專案來快速開發軟體系統。, 4-1 物件導向軟體系統開發 包括 4-1-1 傳統軟體系統開發-函數呼叫, 4-2-1 物件導向分析- 建立使用案例模型(使用案例圖) 是 在需求階段找出系統需求的功能與服務後 ,我們就可以建立使用案例模型(Use Case Model),包含使用案例圖(Use Case Diagram)和使用案例規格(Use Case Specification)。使用案例圖是使用圖形化 表示從問題領域擷取的系統功能,例如: 學生選課的使用案例圖,如下圖所示:, 4-2 物件導向分析與設計 包括 4-2-2 物件導向設計- 指定類別關係(說明), 4-2 物件導向分析與設計 包括 4-2-2 物件導向設計- 指定類別關係(設計模型的類別圖), 4-1-1 傳統軟體系統開發-函數呼叫 是 在主程式main()是一序列的函數呼叫,首先 呼叫getBalance()函數查詢帳戶A的餘額,參 數是帳戶名稱,然後呼叫withdraw()函數從 帳戶A提出1000元後,呼叫deposit()函數將 1000元存入帳戶B,如下所示: getBalance(A); withdraw(A, 1000); deposit(B, 1000);, 4-2 物件導向分析與設計 包括 4-2-1 物件導向分析- 建立使用案例模型(使用案例規格), 4-2-1 物件導向分析- 指定責任(說明) 是 在指定責任(Assigning Responsibilities)步 驟是指定類別的責任,即類別主要的功能 與服務,並且列出需要哪些類別共同合作 才能完成指定的責任,也就是類別之間的 關係。, 4-2 物件導向分析與設計 包括 4-2 物件導向分析與設計-說明, 4-1-3 為什麼使用物件導向軟體系統開發- 說明 是 物件導向的軟體系統開發可以輕鬆擴充現 有系統來建立出大型的軟體系統,不同於 傳統軟體系統開發建立的系統,當成長到 一定尺寸後,就會快速增加系統的複雜度 ,讓開發者很難了解、撰寫、維護和擴充 軟體系統。 換句話說,相同尺寸的大型軟體系統如果 使用物件導向方法,將比傳統方法建立的 軟體系統來的容易了解、撰寫、維護和擴 充。